package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 船位管理对象 ship
 *
 * @author ruoyi
 * @date 2024-10-16
 */
public class Ship extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 新增的自增主键 */
    private Long id;

    /** 船舶ID */
    @Excel(name = "船舶ID")
    private Long ShipID;

    /** 来源 */
    @Excel(name = "来源")
    private Long Fromin;

    /** 海上移动服务标识码 */
    @Excel(name = "海上移动服务标识码")
    private Long mmsi;

    /** 船舶类型 */
    @Excel(name = "船舶类型")
    private Long shiptype;

    /** 国际海事组织的船舶识别码 */
    @Excel(name = "国际海事组织的船舶识别码")
    private Long imo;

    /** 船舶名称 */
    @Excel(name = "船舶名称")
    private String name;

    /** 船舶呼号 */
    @Excel(name = "船舶呼号")
    private String callsign;

    /** 船舶长度（单位：毫米） */
    @Excel(name = "船舶长度", readConverterExp = "单=位：毫米")
    private Long length;

    /** 船舶宽度（单位：毫米） */
    @Excel(name = "船舶宽度", readConverterExp = "单=位：毫米")
    private Long width;

    /** 左舷距离（单位：毫米） */
    @Excel(name = "左舷距离", readConverterExp = "单=位：毫米")
    private Long left;

    /** 尾距（单位：毫米） */
    @Excel(name = "尾距", readConverterExp = "单=位：毫米")
    private Long trail;

    /** 船舶吃水深度（单位：毫米） */
    @Excel(name = "船舶吃水深度", readConverterExp = "单=位：毫米")
    private Long draught;

    /** 目的地 */
    @Excel(name = "目的地")
    private String dest;

    /** 标准化后的目的地 */
    @Excel(name = "标准化后的目的地")
    private String destStd;

    /** 目的港口代码 */
    @Excel(name = "目的港口代码")
    private String destcode;

    /** 预计到达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计到达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date eta;

    /** 标准化后的预计到达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "标准化后的预计到达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date etaStd;

    /** 航行状态标识 */
    @Excel(name = "航行状态标识")
    private Long navistat;

    /** 纬度（单位：百万分之一度） */
    @Excel(name = "纬度", readConverterExp = "单=位：百万分之一度")
    private Long lat;

    /** 经度（单位：百万分之一度） */
    @Excel(name = "经度", readConverterExp = "单=位：百万分之一度")
    private Long lon;

    /** 速度（单位：毫米/秒） */
    @Excel(name = "速度", readConverterExp = "单=位：毫米/秒")
    private Long sog;

    /** 船迹向（单位：0.1度） */
    @Excel(name = "船迹向", readConverterExp = "单=位：0.1度")
    private Long cog;

    /** 船首向（单位：0.1度） */
    @Excel(name = "船首向", readConverterExp = "单=位：0.1度")
    private Long hdg;

    /** 转向率 */
    @Excel(name = "转向率")
    private Long rot;

    /** 数据更新时间的时间戳 */
    @Excel(name = "数据更新时间的时间戳")
    private Long lasttime;

    // Getter and Setter methods

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public void setShipID(Long ShipID)
    {
        this.ShipID = ShipID;
    }

    public Long getShipID()
    {
        return ShipID;
    }
    public void setFromin(Long Fromin)
    {
        this.Fromin = Fromin;
    }

    public Long getFromin()
    {
        return Fromin;
    }
    public void setMmsi(Long mmsi)
    {
        this.mmsi = mmsi;
    }

    public Long getMmsi()
    {
        return mmsi;
    }
    public void setShiptype(Long shiptype)
    {
        this.shiptype = shiptype;
    }

    public Long getShiptype()
    {
        return shiptype;
    }
    public void setImo(Long imo)
    {
        this.imo = imo;
    }

    public Long getImo()
    {
        return imo;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setCallsign(String callsign)
    {
        this.callsign = callsign;
    }

    public String getCallsign()
    {
        return callsign;
    }
    public void setLength(Long length)
    {
        this.length = length;
    }

    public Long getLength()
    {
        return length;
    }
    public void setWidth(Long width)
    {
        this.width = width;
    }

    public Long getWidth()
    {
        return width;
    }
    public void setLeft(Long left)
    {
        this.left = left;
    }

    public Long getLeft()
    {
        return left;
    }
    public void setTrail(Long trail)
    {
        this.trail = trail;
    }

    public Long getTrail()
    {
        return trail;
    }
    public void setDraught(Long draught)
    {
        this.draught = draught;
    }

    public Long getDraught()
    {
        return draught;
    }
    public void setDest(String dest)
    {
        this.dest = dest;
    }

    public String getDest()
    {
        return dest;
    }
    public void setDestStd(String destStd)
    {
        this.destStd = destStd;
    }

    public String getDestStd()
    {
        return destStd;
    }
    public void setDestcode(String destcode)
    {
        this.destcode = destcode;
    }

    public String getDestcode()
    {
        return destcode;
    }
    public void setEta(Date eta)
    {
        this.eta = eta;
    }

    public Date getEta()
    {
        return eta;
    }
    public void setEtaStd(Date etaStd)
    {
        this.etaStd = etaStd;
    }

    public Date getEtaStd()
    {
        return etaStd;
    }
    public void setNavistat(Long navistat)
    {
        this.navistat = navistat;
    }

    public Long getNavistat()
    {
        return navistat;
    }
    public void setLat(Long lat)
    {
        this.lat = lat;
    }

    public Long getLat()
    {
        return lat;
    }
    public void setLon(Long lon)
    {
        this.lon = lon;
    }

    public Long getLon()
    {
        return lon;
    }
    public void setSog(Long sog)
    {
        this.sog = sog;
    }

    public Long getSog()
    {
        return sog;
    }
    public void setCog(Long cog)
    {
        this.cog = cog;
    }

    public Long getCog()
    {
        return cog;
    }
    public void setHdg(Long hdg)
    {
        this.hdg = hdg;
    }

    public Long getHdg()
    {
        return hdg;
    }
    public void setRot(Long rot)
    {
        this.rot = rot;
    }

    public Long getRot()
    {
        return rot;
    }
    public void setLasttime(Long lasttime)
    {
        this.lasttime = lasttime;
    }

    public Long getLasttime()
    {
        return lasttime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())  // 新增的自增主键字段
                .append("ShipID", getShipID())
                .append("Fromin", getFromin())
                .append("mmsi", getMmsi())
                .append("shiptype", getShiptype())
                .append("imo", getImo())
                .append("name", getName())
                .append("callsign", getCallsign())
                .append("length", getLength())
                .append("width", getWidth())
                .append("left", getLeft())
                .append("trail", getTrail())
                .append("draught", getDraught())
                .append("dest", getDest())
                .append("destStd", getDestStd())
                .append("destcode", getDestcode())
                .append("eta", getEta())
                .append("etaStd", getEtaStd())
                .append("navistat", getNavistat())
                .append("lat", getLat())
                .append("lon", getLon())
                .append("sog", getSog())
                .append("cog", getCog())
                .append("hdg", getHdg())
                .append("rot", getRot())
                .append("lasttime", getLasttime())
                .toString();
    }
}

